تعریف و تاریخچه Agile
Agile (چابک) شیوه ای قدرتمند و عملیاتی برای مدیریت چالشهای کسب وکار میباشد که به افزایش کیفیت، زمان تسریع عرضه محصول به بازار هدف، کاهش هزینه کلی پروژه و راه حل های بهبود بهره وری اشاره دار.
متدولوژی Agile در سالهایی بوجود آمد که شرکتهای نرم افزاری به دلیل عدم اهمیت کافی به نیاز مشتریان خود، در تولید محصول با شکست مواجه میشدند. لذا در سال 2001 مدیر چند شرکت نرم افزاری با هم کاری و هم فکری یکدیگر، متدهایی مدیریتی را بوجود آوردند که پس از یافتن دلایل شکست پروژه، بتواند در تولید محصولی منطبق بر نیاز مشتری اثر گذار باشد.
از دید این متدولوژی، مشتری یکی از مهم ترین افراد در تولید پروژه است، چرا که تنها شخصی که از نیازمندی های واقعی نرم افزار مطلع است، در واقع مشتری است.
Agile برای رفع مشکل تحلیل نادرست نیازمندی ها، نیازهای مشتری را توسط تیم توسعه به یک ویژگی در نرم افزار تبدیل مینماید تا بتوان بوسیله این ویژگی ها، امکان سنجی صحیحی برای آنها انجام داد.
عمده دلایل شکست پروژه های نرم افزاری را میتوان به شرح زیر نام برد:
1- زمانبندی نا مناسب
2- کیفیت پائین در تولید نرم افزار
3- ارتباط نداشتن با مشتری
4- تحلیل نادرست نیازمندی ها
5-
کمبود در تست کردن نرم افزار
به عبارت بهتر، میتوان گفت، متدولوژی Agile مجموعه روش هایی است که کمک میکند تا نرم افزار تولید شده کاملا با نیازهای مشتریان مطابقت داشته باشد. در این روش محصول به صورت فاز بندی به مشتری تحویل داده میشود. در واقع مشتری با تیم پروژه کاملا در ارتباط است. یکی از روش های Agile، اسکرام میباشد که در آن تیم توسعه در بازه های زمانی مختلف با مشتری ملاقات کرده و یک خروجی از نرم افزار را به آنها تحویل داده و بازخورد را مشاهده میکند.
سیستم چابک با چه چالش هایی مواجه است؟
سیستم چابک همانند هر سیستم دیگری خواه و ناخواهدست خوش تهدیدات و چالش هایی قرار میگیرد که البته این مهم نتها به ساختار Agile نتوانسته آسیبی بزند بلکه با یافتن راه حل و پاسخ مناسب به این تهدیدات، باعث ارتقا و پویایی بیشتر این سیستم شده است، از جمله چالش هایی که اجایل پیش روی خود دارد میتوان به موارد زیر اشاره کرد:
1-از دست دادن کنترل مدیریت
2-عدم دید رو به جلو
3-محدودیت در پیش بینی توزیع
4-معیار های نا آشنای اندازه گیری
5-انحراف استراتژی بالقوه کسب وکار
Agile چگونه عمل می کند؟
روش AGILE عملی است که امکان توسعه و آزمایش را در طول چرخه فرآیند تولید نرم افزار پروژه فراهم میکند. در مدل چابک، فعالیت های توسعه و آزمایش همزمان اتفاق میافتد. روش توسعه نرم افزار Agile یکی از ساده ترین و موثرترین فرایندها برای تبدیل نیازهای تجاری به پروژه های نرم افزاری است. چابک اصطلاحی است که برای توصیف رویکردهای توسعه نرم افزار استفاده میشود که از برنامه ریزی مداوم، یادگیری، بهبود، همکاری تیمی، توسعه تکاملی و تحویل زود هنگام استفاده میکند. این روش نسبت به نیازهای جدید انعطاف پذیر میباشد
روش توسعه نرم افزار چابک
توسعه نرم افزار چابک از هفت مرحله به شرح زیر تشکیل میشود:
1-صاحب محصول، خلاصهای از هدف، ویژگیهای مطلوب، اجزای محصول نرمافزاری یا ایده بازاریابی را تهیه میکند.
2-گروه کاری انتخاب شده و لیستی از یوزر استوریهای مدنظر نوشته میشود.
3-اسکرام مستر، جلسه برنامهریزی اسپرینت را ترتیب میدهد. به هر یک از یوزر استوریها، زمانی اختصاص داده میشود. یوزر استوریها انتخاب شده و در اسپرینتهایی که از متد کانبان استفاده میکنند، قرار میگیرند. نقشها تعیین میشوند و زمانبندی اسپرینتها تا زمان تحویل پروژه مشخص میشود.
4-تولید آغاز میشود و اسکرام مستر هر روز جلسهای را برای ردیابی پیشرفت و موانع راه برگزار میکند.
5-از بکلاگ محصول برای پیشرفت کار استفاده میشود.
6-محصول منتشر میشود.
7-به منظور ایجاد بازخوردهایی برای استفاده در پروژههای آتی، یک جلسه گذشتهنگر تشکیل میشود.
ارتباط Scrum و Agile
از سری روشهای تفکر چابک (Agile) میتوان به روش اسکرام اشاره کرد،که به طور خاص بر چگونگی مدیریت وظایف در یک محیط توسعه مبتنی بر تیم متمرکز است. اسکرام برای توانمندسازی تیم توسعه به تقسیم کار در تیم های کوچک (مثلاً 7 تا 9 عضو) اعتقاد دارد. این روش شامل سه نقش اصلی با مسئولیتی به شرح زیر است:
· Scrum Master
رهبر اسکرام یا
اسکرام مستر، شخصی است که مسئول موفقیت عملیاتی پروژه است و از جمله وظایف رهبر
اسکرام برگزاری جلسات، رسیدگی به اعضای تیم برای انجام وظایف افراد ، راه اندازی تیم
، برگذاری جلسه زمانی (sprint meeting)و رفع موانع پیشرفت میباشد.
· Product owner
صاحب یا مالک محصول، فرد دوراندیشی است که برای خروجی نهایی پروژه برنامهریزی میکند و تصمیم میگیرد که پروژه شامل کدام یوزر استوری باشد و نتیجه مورد نظر پروژه را به گروه اعلام میکند.درواقع صاحب محصول، میباید پس از ایجاد بک لاگ محصول، بک لاگ را در اولویت قرار دهد (اولویت بندی بک لاگ) و مسئول ارائه نتیجه عملکرد در هر مرحله باشد.
· Scrum Team
همانطور که از نام آن مشخص است، شما به گروهی از افراد نیاز دارید که بتواند در توسعه و انتشار محصولتان شما را یاری کنند. تیم میتواند شامل نویسندگان، طراحان، مدیران خلاق، توسعه دهندگان، متخصصان اطمینان کیفیت و متخصصان داده باشد.
اجزای اصلی Agile کدام است؟
در تعریف Agile از اصطلاحات، نقش ها و اجزای مخصوصی استفاده شده است که اصلی ترین آنها شامل موارد زیر میباشد:
1-اسپرینت (Sprint)
اسپرینت، درواقع همان بازه یا دوره زمانی است که در آن تعداد مشخصی از داستان مشتری (User Story) تکمیل میشود و تیم با شرکت در جلسات برنامه ریزی Sprint تصمیم میگیرد که یک اسپرینت مشخص، شامل کدام یوزر استوری باشد و چند اسپرینت لازم است تا پروژه تکمیل شود. طول مدت اسپرینت برای پروژههای نرمافزاری معمولا دو هفته است اما برای پروژههای بازاریابی ممکن است کوتاهتر باشد.
2-بکلاگ محصول (Product Backlog)
جهت شفاف سازی عملکرد پروژه و پاسخ به این سوال که آیا پروژه در مسیر مورد نظر درحال حرکت است یا خیر؟ نیاز است تا صاحب محصول، در یک زمان تخمینی نسبت به تکمیل و اولویت بندی User Story اقدام نماید. بک لاگ محصول به عنوان مخزن ردیابی نیازها با جزئیات مربوط به تعداد مورد نیاز (داستانهای کاربر) برای تکمیل هر نسخه از اهمیت ویژه ای برخوردار است که توسط مالک محصول نگهداری و اولویت بندی میشود و در اختیار تیم اسکرام قرار میگیرد
3-اسکرام روزانه
جهت ایجاد یک گرد هم آیی کوتاه برای صحبت در مورد دست یافتههای روز قبل، و کارها و موانع پیش رو در همان روز و همچنین حرکت دادن پروژه در مسیر مورد نظر و تعیین نحوه عملکرد پروژه و درنهایت تشخیص هرگونه مانعی را که از تکمیل به موقع پروژه جلوگیری میکند، میباید به صورت روزانه ذینفعان پروژه به صورت ایستاده در جلسات اسکرام که مدت آن حدود 7 الی 15 دقیقه است شرکت نمایند.
4-جلسه گذشته نگر
برای ذینفعان پروژه، اطلاع از روند پروژه و اینکه چه مواردی خوب بوده و چه چیزهایی در پروژه بعدی قابل ارتقا است، بسیار با اهمیت است که در این خصوص جلسهای داشته باشند و به گفتگو بپردازند. بنابر این بعد از تکمیل بخش های مختلف پروژه و انتشار برنامه، جلسه گذشت نگر در این خصوص برگزار میگردد.
در پایان پیشنهاد میشود برای مدیریت بهتر تیم خود جهت پیشی گرفتن از رقیبان از روشها و قوانین متدولوژی Agile استفاده نمایید.